home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / N-O / Notes.cpt / Notes on Notes / card_5147.txt < prev    next >
Text File  |  1988-04-15  |  13KB  |  358 lines

  1. -- card: 5147 from stack: in
  2. -- bmap block id: 5384
  3. -- flags: 0000
  4. -- background id: 2729
  5. -- name: 
  6.  
  7.  
  8. -- part 1 (button)
  9. -- low flags: 00
  10. -- high flags: 0000
  11. -- rect: left=36 top=102 right=142 bottom=74
  12. -- title width / last selected line: 0
  13. -- icon id / first selected line: 19594 / 19594
  14. -- text alignment: 1
  15. -- font id: 20
  16. -- text size: 10
  17. -- style flags: 0
  18. -- line height: 13
  19. -- part name: Exbando
  20. ----- HyperTalk script -----
  21. -- PostIt, the original version of this button was written
  22. -- by Mark Igra, 1588 Henry St. #2.  Berkeley, CA 94709.
  23. -- Copyright Mark Igra.
  24. -- Hybrid, "Exbando" by Peter Martori, 605 W. Montebello, Phx, AZ 85013
  25. --
  26. -- This button creates a note that you can name, hide, move & delete.
  27. -- The note consists of a text field and a button which hides
  28. -- the field if it is visible and shows it if it is not.
  29. -- You create the note by clicking this button, naming the note, then
  30. -- clicking where you want the note to be located.
  31. -- You can move the note by double-clicking and dragging the note to
  32. -- where you want it (keep the mouse button down on the second click).
  33. -- You can remove the note by option-clicking it (hold the optionKey
  34. -- down, then click the note field).
  35. --
  36. -- Feel free to place this button or a variant on all stacks.  Please
  37. -- include notice (first 4 lines).
  38.  
  39. global noteName
  40. on mouseUp
  41.   global noteName
  42.   ask "Name the Note..."
  43.   if it is empty then exit mouseUp
  44.   put it into noteName
  45.   put the number of card fields + 1 into fieldNum
  46.   put the userLevel into saveLevel
  47.   set the userLevel to 5
  48.  
  49.   if the userLevel < 5 then
  50.     answer "Can't make new fields now" with "OK"
  51.     exit mouseUp
  52.   end if
  53.  
  54.   -- You will probably want to take this notice out
  55.  
  56.   answer "Click where you want the note" with "Cancel" or "OK"
  57.   if it is "Cancel" then exit mouseUp
  58.  
  59.   wait until the mouseClick
  60.  
  61.   put the mouseLoc into noteLoc
  62.   set the cursor to 4 -- watch
  63.   set lockScreen to true
  64.  
  65.   -- Create the field
  66.   put (return & "on openfield" & return & " get the short name of target" & return & " put it into noteName" & return & "  if the optionKey is down then" & return & "   set lockscreen to true" & return & "   choose button tool" & return & "   get loc of target" & return & "   subtract 92 from item 2 of it" & return & "   click at it" & return & "   domenu" & quote & "Clear Button" & quote & return & "   choose field tool" & return & "   get loc of target" & return & "   click at it" & return & "   domenu" & quote & "Clear Field" & quote & return & "   choose browse tool" & return & "   set lockscreen to false" & return & "  end if" & return && "wait 10 ticks" & return & "  if the mouse is down then" & return & "   repeat until the mouse is up" & return & "    set the loc of the target to the mouseLoc" & return & "    get the loc of target" & return & "    subtract 92 from item 2 of it" & return & "    set the loc of button notename to it" & return & "   end repeat" & return & "  end if" & return & "end openfield") into fieldscript
  67.  
  68.   choose field tool
  69.   drag from noteLoc to item 1 of noteLoc + 150,item 2 of noteLoc + 200 with commandKey
  70.   set the style of card field fieldNum to rectangle
  71.   put the id of card field fieldNum into fieldID
  72.   set the name of card field fieldNum to notename
  73.   set the script of card field fieldNum to fieldscript
  74.   -- Make the button
  75.  
  76.   makeButton noteLoc,fieldID
  77.  
  78.   -- Return everything to normal.
  79.  
  80.   choose browse tool
  81.   set the userLevel to saveLevel
  82.   set the cursor to saveCursor
  83.   set lockScreen to false
  84. end mouseUp
  85.  
  86. on makeButton noteLoc,fieldID
  87.   global notename
  88.   put the number of buttons + 1 into buttonNum
  89.   choose button tool
  90.   drag from noteLoc to item 1 of noteLoc + 150,item 2 of noteLoc + 15 with commandKey
  91.   set the style of button buttonNum to rectangle
  92.   set the textfont of button buttonNum to geneva
  93.   set the textsize  of button buttonNum to 9
  94.   set name of button buttonNum to notename
  95.   set the showname of button buttonNum to true
  96.   set the script of button buttonNum to PostItScript(fieldID)
  97. end makeButton
  98.  
  99. -- The buttons that hide and show a post it note have a script
  100. -- which is customized for the note they show.  The button's script
  101. -- uses the id of the field so that it will work no matter how the
  102. -- fields are shuffled.
  103.  
  104. function PostItScript fieldID
  105. return "on mouseUp" & return¬¨  -- Note the use of 'return' as end of line
  106. && "Set the visible of card field id" && fieldID && "to not the visible of card field id" && fieldID & return & "end mouseUp"
  107. end PostItScript
  108.  
  109.  
  110.  
  111.  
  112. -- part 2 (button)
  113. -- low flags: 00
  114. -- high flags: 0000
  115. -- rect: left=307 top=199 right=239 bottom=345
  116. -- title width / last selected line: 0
  117. -- icon id / first selected line: 27354 / 27354
  118. -- text alignment: 1
  119. -- font id: 20
  120. -- text size: 10
  121. -- style flags: 0
  122. -- line height: 13
  123. -- part name: Exbando
  124. ----- HyperTalk script -----
  125. -- PostIt, the original version of this button was written
  126. -- by Mark Igra, 1588 Henry St. #2.  Berkeley, CA 94709.
  127. -- Copyright Mark Igra.
  128. -- Hybrid, "Exbando" by Peter Martori, 605 W. Montebello, Phx, AZ 85013
  129. --
  130. -- This button creates a note that you can name, hide, move & delete.
  131. -- The note consists of a text field and a button which hides
  132. -- the field if it is visible and shows it if it is not.
  133. -- You create the note by clicking this button, naming the note, then
  134. -- clicking where you want the note to be located.
  135. -- You can move the note by double-clicking and dragging the note to
  136. -- where you want it (keep the mouse button down on the second click).
  137. -- You can remove the note by option-clicking it (hold the optionKey
  138. -- down, then click the note field).
  139. --
  140. -- Feel free to place this button or a variant on all stacks.  Please
  141. -- include notice (first 4 lines).
  142.  
  143. global noteName
  144. on mouseUp
  145.   global noteName
  146.   put the number of card fields + 1 into fieldNum
  147.   put "Tom" & fieldNum into notename
  148.   put the userLevel into saveLevel
  149.   set the userLevel to 5
  150.  
  151.   if the userLevel < 5 then
  152.     answer "Can't make new fields now" with "OK"
  153.     exit mouseUp
  154.   end if
  155.  
  156.   -- You will probably want to take this notice out
  157.  
  158.   answer "Click where you want the note" with "Cancel" or "OK"
  159.   if it is "Cancel" then exit mouseUp
  160.   wait until the mouseClick
  161.  
  162.   put the mouseLoc into noteLoc
  163.   set the cursor to 4 -- watch
  164.   set lockScreen to true
  165.  
  166.   -- Create the field
  167.   put (return & "on openfield" & return & "  if the optionKey is down then" & return & "   set lockscreen to true" & return & "   choose button tool" & return & "   get loc of target" & return & "   subtract 72 from item 2 of it" & return & "   subtract 72 from item 1 of it" & return & "   click at it" & return & "   domenu" && quote & "Clear Button" & quote & return & "   choose field tool" & return & "   get loc of target" & return & "   click at it" & return & "   domenu" && quote & "Clear Field" & quote & return & "   choose browse tool" & return & "   set lockscreen to false" & return & "  end if" & return && "wait 10 ticks" & return & "  if the mouse is down then" & return & "   repeat until the mouse is up" & return & "    set the loc of the target to the mouseLoc" & return & "    get the loc of target" & return & "    subtract 72 from item 2 of it" & return & "    subtract 72 from item 1 of it" & return & "    set the loc of button" && notename && "to it" & return & "   end repeat" & return & "  end if" & return & "end openfield") into fieldscript
  168.  
  169.   choose field tool
  170.   drag from noteLoc to item 1 of noteLoc + 150,item 2 of noteLoc + 150 with commandKey
  171.   set the style of card field fieldNum to rectangle
  172.   set the name of card field fieldNum to notename
  173.   set the script of card field fieldNum to fieldscript
  174.   put the id of card field fieldNum into fieldID
  175.  
  176.   -- Make the button
  177.  
  178.   makeButton noteLoc,fieldID
  179.  
  180.   -- Return everything to normal.
  181.  
  182.   choose browse tool
  183.   set the userLevel to saveLevel
  184.   set the cursor to saveCursor
  185.   set lockScreen to false
  186. end mouseUp
  187.  
  188. on makeButton noteLoc,fieldID
  189.   global notename
  190.   put the number of buttons + 1 into buttonNum
  191.   choose button tool
  192.   drag from noteLoc to item 1 of noteLoc + 15,item 2 of noteLoc + 15 with commandKey
  193.   set the style of button buttonNum to rectangle
  194.   set the script of button buttonNum to PostItScript(fieldID)
  195.   set the name of button buttonNum to notename
  196.   set the rect of button buttonNum to item 1 of noteLoc, item 2 of noteLoc, item 1 of noteLoc + 6, item 2 of noteLoc + 6
  197. end makeButton
  198.  
  199. -- The buttons that hide and show a post it note have a script
  200. -- which is customized for the note they show.  The button's script
  201. -- uses the id of the field so that it will work no matter how the
  202. -- fields are shuffled.
  203.  
  204. function PostItScript fieldID
  205. return "on mouseUp" & return¬¨  -- Note the use of 'return' as end of line
  206. && "Set the visible of card field id" && fieldID && "to not the visible of card field id" && fieldID & return & "end mouseUp"
  207. end PostItScript
  208.  
  209.  
  210.  
  211.  
  212. -- part 3 (field)
  213. -- low flags: 80
  214. -- high flags: 0002
  215. -- rect: left=323 top=127 right=328 bottom=474
  216. -- title width / last selected line: 0
  217. -- icon id / first selected line: 0 / 0
  218. -- text alignment: 0
  219. -- font id: 3
  220. -- text size: 12
  221. -- style flags: 0
  222. -- line height: 16
  223. -- part name: A cautionary note...
  224. ----- HyperTalk script -----
  225.  
  226. on openfield
  227.   get the short name of target
  228.   put it into noteName
  229.   if the optionKey is down then
  230.     set lockscreen to true
  231.     choose button tool
  232.     get loc of target
  233.     subtract 92 from item 2 of it
  234.     click at it
  235.     domenu"Clear Button"
  236.     choose field tool
  237.     get loc of target
  238.     click at it
  239.     domenu"Clear Field"
  240.     choose browse tool
  241.     set lockscreen to false
  242.   end if
  243.   wait 10 ticks
  244.   if the mouse is down then
  245.     repeat until the mouse is up
  246.       set the loc of the target to the mouseLoc
  247.       get the loc of target
  248.       subtract 92 from item 2 of it
  249.       set the loc of button notename to it
  250.     end repeat
  251.   end if
  252. end openfield
  253.  
  254.  
  255. -- part 4 (button)
  256. -- low flags: 00
  257. -- high flags: 8002
  258. -- rect: left=323 top=127 right=143 bottom=474
  259. -- title width / last selected line: 0
  260. -- icon id / first selected line: 0 / 0
  261. -- text alignment: 1
  262. -- font id: 3
  263. -- text size: 9
  264. -- style flags: 0
  265. -- line height: 12
  266. -- part name: A cautionary note...
  267. ----- HyperTalk script -----
  268. on mouseUp
  269.   Set the visible of card field id 3 to not the visible of card field id 3
  270. end mouseUp
  271.  
  272.  
  273. -- part 7 (field)
  274. -- low flags: 80
  275. -- high flags: 0002
  276. -- rect: left=144 top=198 right=349 bottom=295
  277. -- title width / last selected line: 0
  278. -- icon id / first selected line: 0 / 0
  279. -- text alignment: 0
  280. -- font id: 3
  281. -- text size: 12
  282. -- style flags: 0
  283. -- line height: 16
  284. -- part name: Tom2
  285. ----- HyperTalk script -----
  286.  
  287. on openfield
  288.   if the optionKey is down then
  289.     set lockscreen to true
  290.     choose button tool
  291.     get loc of target
  292.     subtract 72 from item 2 of it
  293.     subtract 72 from item 1 of it
  294.     click at it
  295.     domenu "Clear Button"
  296.     choose field tool
  297.     get loc of target
  298.     click at it
  299.     domenu "Clear Field"
  300.     choose browse tool
  301.     set lockscreen to false
  302.   end if
  303.   wait 10 ticks
  304.   if the mouse is down then
  305.     repeat until the mouse is up
  306.       set the loc of the target to the mouseLoc
  307.       get the loc of target
  308.       subtract 72 from item 2 of it
  309.       subtract 72 from item 1 of it
  310.       set the loc of button Tom2 to it
  311.     end repeat
  312.   end if
  313. end openfield
  314.  
  315.  
  316. -- part 8 (button)
  317. -- low flags: 00
  318. -- high flags: 0002
  319. -- rect: left=144 top=198 right=204 bottom=150
  320. -- title width / last selected line: 0
  321. -- icon id / first selected line: 0 / 0
  322. -- text alignment: 1
  323. -- font id: 0
  324. -- text size: 12
  325. -- style flags: 0
  326. -- line height: 16
  327. -- part name: Tom2
  328. ----- HyperTalk script -----
  329. on mouseUp
  330.   Set the visible of card field id 7 to not the visible of card field id 7
  331. end mouseUp
  332.  
  333.  
  334. -- part contents for background part 1
  335. ----- text -----
  336. Flush with success I decided to revisit my earlier attemp and improve upon it.  Just for the hell of it!
  337.  
  338. "Expando II"  allows you to name the note.  Expand and collapse it.  Move it around and delete it.
  339.  
  340. "Expando III"  is the same as "II",  but doesn't get a name and has a little button like "Post-its".  If you have ever put a "Post-it" in some text and then gone back and edited, you will appreciate Expando III.
  341.  
  342. I have had fun playing with these
  343. different ideas.  My scripting is artless.  I would love to hear from someone who knows what they are doing.  A brutal critique would be well taken.
  344.  
  345. -- part contents for card part 3
  346. ----- text -----
  347.  
  348. If you let part of a note disappear off the card, it won't be able to find the button when you try to delete it.
  349. Just "cancel", move the note out into the open and then blow it away.
  350.  
  351.  
  352.  
  353. -- part contents for card part 7
  354. ----- text -----
  355. what is this stupid button doing here.  Double-click the note, keep the mouse button down on the second click and put this somewhere out of the way.
  356.  
  357.  
  358.